Skip to content

feat: фильтры и сортировка последней активности участников - #807

Merged
TThanos3000 merged 1 commit into
devfrom
feat/dev-participant-activity-filters-20261021
Oct 20, 2026
Merged

TThanos3000 merged 1 commit into
devfrom
feat/dev-participant-activity-filters-20261021

Conversation

@TThanos3000

@TThanos3000 TThanos3000 commented Oct 20, 2026 •

Copy link
Copy Markdown
Collaborator

Что изменено

Участников программы можно отфильтровать по наличию последней активности и отсортировать по ее дате. Active означает наличие даты, inactive — ее отсутствие, независимо от давности. Фильтры, выбор всех совпадений и Excel используют один queryset.

Зачем

Организатору нужны понятные фильтры «Только активные» / «Неактивные» и сортировка последней активности в панели управления.

Реализация

Расширены ManagementParticipantQuery и participant_rows. Сортировка выполняется до пагинации; пустые даты в обоих направлениях идут в конце, равные значения стабилизируются PK.

API

GET participants/, participants/export/, participants/selection/: activity дополнен active/inactive; never сохранен как совместимый alias. Новый order=registration (default), activity_asc, activity_desc. Прежний порядок по умолчанию и формат ответа сохраняются; неизвестное значение возвращает 400. Развертывание API перед новым Angular UI.

UI

Отдельный frontend PR: фильтры, сортируемый заголовок/мобильная кнопка, выравнивание controls и плашка. В этом PR UI не менялся.

Permissions

Не менялись: только организатор конкретной программы либо существующий staff/superuser. Фильтры применяются внутри program scope. Нет изменений учетных записей, команд или оценок.

Проверки

  • PostgreSQL: management_participants + management_bulk + management_api — 39 тестов прошли.
  • Black, Flake8 измененных Python-файлов и git diff --check прошли.
  • Полный PostgreSQL CI: 1259 тестов + 39 locking/vacancy. Compatibility CI: 1259 тестов, 29 ожидаемых SQLite DB-feature skips. Оба успешны.

Acceptance criteria

  • Active / inactive разделяют даты / null; never совместим.
  • Порядок глобальный, стабилен, null всегда в конце; есть проверка второй страницы.
  • Регионы сочетаются с сортировкой; Excel и выбор всех используют те же фильтры.
  • Валидация неправильного order/периода сохранена.

Не проверено

Опубликованный интерфейс проверяется вместе с frontend после dev deployment; реальные пользователи и письма не используются.

Риски / migration

Миграций нет. Дефолты совместимы. Production не затрагивается.

@TThanos3000
TThanos3000 merged commit bc1588e into dev Oct 20, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants